package com.ict.web.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;


/**
 * 评审任务对象 yzq_review_task
 *
 * @author ruoyi
 * @date 2022-02-16
 */
@ToString
@Data
@Accessors(chain = true)
@TableName("yzq_review_task")
public class ReviewTask extends Model<ReviewTask> implements Serializable
{

    private static final long serialVersionUID = 1L;

    /**抽取状态{1：专家待接受 }*/
    public final static String EXTRACT_STATUS_NOT_ACCEPT = "1";
    /**抽取状态{ 2：专家已接受 }*/
    public final static String EXTRACT_STATUS_ACCEPTED = "2";
    /**抽取状态{ 3 ：专家待评价 }*/
    public final static String EXTRACT_STATUS_NOT_EVALUATE = "3";
    /**抽取状态{ 4：专家已评价}*/
    public final static String EXTRACT_STATUS_EVALUATED = "4";
    /**抽取状态{ 5：专家申请取消}*/
    public final static String EXTRACT_STATUS_CANCEL = "5";

    /**评审抽取类型{1：统一抽取 }*/
    public final static String EXTRACT_TYPE_UNIFY= "1";
    /**评审抽取类型{2：更换专家}*/
    public final static String EXTRACT_TYPE_EXCHANGE_EXPERT = "2";

    /**抽取结果{1：发送专家接受 }*/
    public final static String EXTRACT_RESULT_SEND_EXPERT = "1";
    /**抽取结果{2：重新抽取}*/
    public final static String EXTRACT_RESULT_AGAIN_EXTRACT = "2";

    /**评审类型(0:方案评审 */
    public final static String REVIEW_TYPE_PROGRAMME= "0";
    /**评审类型( 1：年度项目清单评审*/
    public final static String REVIEW_TYPE_ANNUAL = "1";

    /**是否转接第三方(0：否 )*/
    public final static String IF_EXCHANGE_THIRD_NO= "0";
    /**是否转接第三方( 1：是)*/
    public final static String IF_EXCHANGE_THIRD_YES = "1";

    @ApiModelProperty(value = "评审任务Id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId(type = IdType.ASSIGN_ID)
    private Long reviewTaskId;

    /**任务名称*/
    @ApiModelProperty(value = "任务名称")
    private String taskName;

    /**评审类型(0:方案评审 1：年度项目清单评审)"*/
    @ApiModelProperty(value = "评审类型(0:方案评审 1：年度项目清单评审)")
    private String reviewType;

    /**是否转接第三方(0：否 1：是)*/
    @ApiModelProperty(value = "是否转接第三方(0：否 1：是)")
    private String ifExchangeThird;

    /**第三机构id*/
    @ApiModelProperty(value = "第三机构id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long ormId;

    /**专家数量*/
    @ApiModelProperty(value = "专家数量")
    private String expertNum;

    /**评审开始时间*/
    @ApiModelProperty(value = "评审开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8",shape = JsonFormat.Shape.STRING)
    private LocalDateTime reviewTimeStart;

    /**评审结束时间*/
    @ApiModelProperty(value = "评审结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8",shape = JsonFormat.Shape.STRING)
    private LocalDateTime reviewTimeEnd;

    /**评审地点*/
    @ApiModelProperty(value = "评审地点")
    private String reviewAddress;

    /**节点*/
    @ApiModelProperty(value = "节点")
    private String node;

    /**节点状态*/
    @ApiModelProperty(value = "节点状态")
    private String nodeStatus;

    /**抽取时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8",shape = JsonFormat.Shape.STRING)
    @ApiModelProperty(value = "抽取时间")
    private LocalDateTime extractTime;

    /**抽取状态{1：专家待接受 2：专家已接受 3 ：专家待评价 4：专家已评价 5：专家申请取消}*/
    @ApiModelProperty(value = "抽取状态{1：专家待接受 2：专家已接受 3 ：专家待评价 4：专家已评价5：专家申请取消}")
    private String expertStatus;

    /**删除状态*/
    @ApiModelProperty(value = "删除状态{0：正常 1：删除}")
    private String delFlag;

    /**创建时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**修改时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

    /**评审抽取类型{1：统一抽取 2：更换专家}*/
    @ApiModelProperty(value = "评审抽取类型{1：统一抽取 2：更换专家}")
    private String extractType;

    /**抽取结果{1：发送专家接受 2：重新抽取}*/
    @ApiModelProperty(value = "抽取结果{1：发送专家接受 2：重新抽取}")
    private String extractResult;

    /**抽取单位*/
    @ApiModelProperty(value = "抽取单位")
    private String extractUnit;

    /**抽取操作人*/
    @ApiModelProperty(value = "抽取操作人")
    private String extractPeople;

    /** 年度计划id */
    @ApiModelProperty(value = "年度计划id")
    private Long planId;
    /** 专家结论文件id */
    @ApiModelProperty(value = "专家结论文件id")
    private Long fileId;
}
